@page "/docio/wordml-to-word"
@inject Microsoft.JSInterop.IJSRuntime JS
@using System.IO
@using Syncfusion.Blazor.Buttons
@using BlazorDemos.Data.FileFormats.DocIO
@inherits SampleBaseComponent;

<SampleDescription>
   <p style="font-size:16px"> This sample demonstrates how to convert the Word processing XML to Word document using Essential DocIO.</p> 
</SampleDescription>
<ActionDescription>
   <p style="font-size:16px">DocIO provides support to convert the Word processing 2003 XML and Word processing XML document to Word document.</p>&nbsp;
    <p style="font-size:16px">More information about the nested Mail merge can be found in this <a href="https://help.syncfusion.com/file-formats/docio/working-with-mailmerge">documentation</a> section.</p>
</ActionDescription>

    <div class="control-section">
        <p style="font-size:16px">Click the button to view the generated Word document. Please note that Microsoft Word Viewer or Microsoft Word is required to view the resultant Word document.</p>

        <table>
            <tr>
                <td>
                    <h5 class="row" style="font-size:16px">Save As:</h5>
                </td>
                <td>
                    <div class="col-xs-12 col-sm-12 col-lg-1 col-md-6">
                        <SfRadioButton Label="DOC" Name="DOC" Value=@("DOC") @bind-Checked="@documentType"></SfRadioButton>
                    </div>
                </td>
                <td>
                    <div class="col-xs-12 col-sm-12 col-lg-1 col-md-6">
                        <SfRadioButton Label="DOCX" Name="DOCX" Value=@("DOCX") @bind-Checked="@documentType"></SfRadioButton>
                    </div>
                </td>
            </tr>
            <tr>
                <td colspan="3">
                    <div class="button-section">
                        <div id="button-control">
                            <div class="row">
                                <div>
                                    <SfButton @onclick="ViewTemplate">View Template</SfButton>&nbsp;
                                    <SfButton @onclick="GenerateDocument">Convert to Word</SfButton>
                                </div>
                            </div>
                        </div>
                    </div>
                </td>
            </tr>
        </table>
    </div>

<style>
    .control-section .row {
        margin: 10px 0;
    }
</style>

@code {
    MemoryStream documentStream;
    string documentType = "DOCX";

    /// <summary>
    /// Create and download the simple Word document
    /// </summary>
    public async Task GenerateDocument(MouseEventArgs args)
    {
        WordMLtoWordService service = new WordMLtoWordService();
        documentStream = service.WordMLtoWord(documentType, "Generate Document");
        if (documentType == "DOC")
            await JS.SaveAs("Sample.doc", documentStream.ToArray());       
        else
            await JS.SaveAs("Sample.docx", documentStream.ToArray());        
    }
    /// <summary>
    /// Create and download the template Word document
    /// </summary>
    public async Task ViewTemplate(MouseEventArgs args)
    {
        WordMLtoWordService service = new WordMLtoWordService();
        documentStream = service.WordMLtoWord(documentType, "View Template");
        await JS.SaveAs("TemplateWordMLtoDoc.xml", documentStream.ToArray());        
    }
}